/**
 * Paginacion (Javascript) Parte visual
 * @param pagActual - Pagina actual de consulta (marcada como seleccionada) Se indexa comenzando en 1
 * @param pagTotales - Numero de paginas totales
 * @param idPaginacion - String con el # e ID del div donde se crearán todos los elementos de paginación
 * @param nameFunction - Nombre de funcion con todos sus parámetros necesarios, al cual hay que anyadirle la pagActual. El string de nameFunction vendra con una "," si existe mas de un parametro
 * antes del pagActual, por ejemplo "getNews(prueba1,"
 */
function paginacionJS(pagActual, pagTotales, idPaginacion, nameFunction, numPaginas){
	if(numPaginas == null){
		numPaginas = 2;
	}
	if(numPaginas % 2 != 0){
		numPaginas++;
	}
	
	//Construccion de cotas anterior y posterior en funcion del numPaginas deseado
	var cotaAnt = 0;
	var cotaPos = 0;
	var numPaginasAux = numPaginas;
	for(var i = 1; i <= numPaginas; i++) {
		if(numPaginasAux > 0){
			if(pagActual - i >= 1){
				cotaAnt++;
				numPaginasAux--;
			}
			if(pagActual + i <= pagTotales){
				cotaPos++;
				numPaginasAux--;
			}
		}
	}
	//Control adicional para situaciones que limitan con PrimeraPag y UltimaPag
	//Comprobar que existe siempre AL MENOS una pagina pordelante y pordetras
	if(pagActual + cotaPos == pagTotales - 1 && cotaAnt != 1){
		cotaAnt--;
	}
	if(pagActual - cotaAnt == 2 && cotaPos != 1){
		cotaPos--;
	}
	
	//Proceso de construccion	
	$(idPaginacion).html("");
	
	$(idPaginacion).append("<div class='line paginacion'><div class='line paginacionPaginas'></div></div>");
	$(idPaginacion + " .line.paginacionPaginas").append("<div class='paginas'></div>");
	
	//Boton anterior
	if(pagActual != null && pagActual > 1){
		$(idPaginacion + " .paginas").append("<a id='btnBeginning' onclick=\"" + nameFunction + 1 + ");\" title=" + $('#msgBeginning').attr("value") + "></a>");
		$(idPaginacion + " .paginas").append("<a id='btnAnterior' onclick=\"" + nameFunction + (pagActual - 1) + ");\" title=" + $('#msgAnterior').attr("value") + "></a>");
	}
	for(var i = 1; i <= pagTotales; i++){
		if(pagTotales > 1){
			if(i == 1 || i == pagTotales || (i >= pagActual - cotaAnt && i <= pagActual + cotaPos)){
				//Presentacion de ultimos Puntitos (debe ser antes de las pag)
				if(i == pagTotales && !(pagTotales - 1 <= pagActual + cotaPos)){
					$(idPaginacion + " .paginas").append("<span class='puntitos'><span>");
				}
				//Resto de paginas dentro del intervalo [-tolerance,+tolerance]
				if(i != pagActual){
					$(idPaginacion + " .paginas").append("<a class='indicePaginacion' onclick=\"" + nameFunction + (i) + ");\" >" + i + "</a>");
				}else{
					$(idPaginacion + " .paginas").append("<span class='indicePaginacion'>" + i + "</span>");
				}
				//Presentacion de primeros puntitos (debe ser despues de la serie de pag)
				if(i == 1 && !(2 >= pagActual - cotaAnt)){
					$(idPaginacion + " .paginas").append("<span class='puntitos'><span>");
				}
			}
		}
	}
	//Boton siguiente
	if(pagActual < pagTotales && pagTotales > 1){
		$(idPaginacion + " .paginas").append("<a id='btnSiguiente' onclick=\"" + nameFunction + (pagActual + 1) + ");\"  title=" + $('#msgSiguiente').attr("value") + "></a>");
		$(idPaginacion + " .paginas").append("<a id='btnEnd' onclick=\"" + nameFunction + (pagTotales) + ");\"  title=" + $('#msgEnd').attr("value") + "></a>");
	}
}